home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / Ant Movie Catalog 3.5.0.2 / amc_install.exe / {app} / Scripts / Update Fields (FR-US).ifs < prev    next >
Text File  |  2005-05-24  |  26KB  |  650 lines

  1. (***************************************************
  2.  
  3. Ant Movie Catalog importation script
  4. www.antp.be/software/moviecatalog/
  5.  
  6. [Infos]
  7. Authors=ScorEpioN
  8. Title=Update Fields
  9. Description=Mise α jour massive de champs / Update fields
  10. Site=http://scorepion.le-site.info
  11. Language=EN,FR
  12. Version=25 du 23/05/2005
  13. Requires=3.5
  14. Comments=Ce script nΘcessite le fichier ScorEpioNCommonScript.pas|.==.| :   ' ( ( ( ( /\ |  "==()))))):     ⌐ ScorEpioN ⌐|       ( ( ( ( \_/
  15. License=
  16. GetInfo=0
  17.  
  18. [Options]
  19. Mise α jour=1|1|0=Oui|1=Non
  20. Casse Choisie=3|3|0=Tout en minuscule|1=Tout en majuscule|2=PremiΦre lettre en majuscule|3=PremiΦre lettre de chaque mot en majuscule
  21.  
  22. ***************************************************)
  23.  
  24.  
  25. program UpdateAllField;
  26. uses
  27.   ScorEpioNCommonScript;
  28.  
  29. const
  30.   VersionScript = '25 du 23/05/2005';
  31.   NomScript = 'UPDATE FIELDS';
  32.  
  33. var
  34.   Update, NewField, NewValue, Field, Abort, FirstExec : String;
  35.  
  36. //------------------------------------------------------------------------------
  37. // FONCTION DEMANDE CONFIRMATION
  38. //------------------------------------------------------------------------------
  39. function confirm(leMessage : String): Boolean;
  40. begin
  41.   if (FirstExec <> 'N') then
  42.   begin
  43.     if (ShowConfirmation(leMessage) = True) then
  44.     begin
  45.       result := True;
  46.     end else
  47.       result := False;
  48.   end else
  49.     result := True;
  50. end;
  51.  
  52. //------------------------------------------------------------------------------
  53. // MET UN CHAMPS A LA CASSE VOULUE
  54. //------------------------------------------------------------------------------
  55.  
  56. function casse(titre : String; option : Integer) : string;
  57. begin
  58.   if (option = 0) then
  59.   begin
  60.      titre := AnsiLowerCase(titre);
  61.   end else if (option = 1) then
  62.   begin
  63.      titre := AnsiUpperCase(titre);
  64.   end else if (option = 2) then
  65.   begin
  66.      titre := AnsiUpFirstLetter(titre);
  67.   end else if (option = 3) then
  68.   begin
  69.      titre := AnsiMixedCase(titre,' -');
  70.   end;
  71.   result := titre;
  72. end;
  73.  
  74. //------------------------------------------------------------------------------
  75. // FONCTION DE DUPLICATION DE FICHES
  76. //------------------------------------------------------------------------------
  77. procedure duplicateFields();
  78. begin
  79.   if (confirm('Vous allez dupliquer la fiche : '+GetField(fieldTranslatedTitle)+' ('+GetField(fieldOriginalTitle)+'). '+'Avez-vous bien penser α sΘlectionner les fiches cibles ?') = True) then
  80.   begin
  81.      if (FirstExec <> 'N') then
  82.      begin
  83.       SetStatic('Titretraduit',GetField(fieldTranslatedTitle));  // Titre traduit
  84.       SetStatic('Titreoriginal', GetField(fieldOriginalTitle));  // Titre original
  85.       SetStatic('Description', GetField(fieldDescription));      // Description
  86.       SetStatic('Media', GetField(fieldMedia));                  // Media
  87.       SetStatic('Typedemedia', GetField(fieldMediaType));        // Type de media
  88.       SetStatic('Source', GetField(fieldSource));                // Source
  89.       SetStatic('Ladate', GetField(fieldDate));                  // Date
  90.       SetStatic('Lemprunteur', GetField(fieldBorrower));         // Emprunteur
  91.       SetStatic('Note', GetField(fieldRating));                  // Note
  92.       SetStatic('Directeur', GetField(fieldDirector));           // Directeur
  93.       SetStatic('Producteur', GetField(fieldProducer));          // Producteur
  94.       SetStatic('Pays', GetField(fieldCountry));                 // Pays
  95.       SetStatic('Categorie', GetField(fieldCategory));           // Categorie
  96.       SetStatic('Annee', GetField(fieldYear));                   // Annee
  97.       SetStatic('Duree', GetField(fieldLength));                 // Duree
  98.       SetStatic('Acteurs', GetField(fieldActors));               // Acteurs
  99.       SetStatic('URL', GetField(fieldURL));                      // URL
  100.       SetStatic('Commentaires', GetField(fieldComments));        // Commentaires
  101.       SetStatic('Formatvideo', GetField(fieldVideoFormat));      // Format video
  102.       SetStatic('Formataudio', GetField(fieldAudioBitrate));     // Format audio
  103.       SetStatic('Bitratevideo', GetField(fieldVideoBitrate));    // Bitrate video
  104.       SetStatic('Bitrateaudio', GetField(fieldAudioBitrate));    // Bitrate audio
  105.       SetStatic('Resolution', GetField(fieldResolution));        // Resolution
  106.       SetStatic('Nbframe', GetField(fieldFrameRate));            // Nbframe
  107.       SetStatic('Langue', GetField(fieldLanguages));             // Langue
  108.       SetStatic('Soustitre', GetField(fieldSubtitles));          // Sous-titre
  109.       SetStatic('Taille', GetField(fieldSize));                  // Taille
  110.       SetStatic('Nbdisque', GetField(fieldDisks));               // Nb de disque
  111.      end else
  112.      begin
  113.       if CanSetField(fieldTranslatedTitle) then SetField(fieldTranslatedTitle, GetStatic('Titretraduit'));
  114.       if CanSetField(fieldOriginalTitle) then SetField(fieldOriginalTitle, GetStatic('Titreoriginal'));
  115.       if CanSetField(fieldDescription) then SetField(fieldDescription, GetStatic('Description'));
  116.       if CanSetField(fieldMedia) then SetField(fieldMedia, GetStatic('Media'));
  117.       if CanSetField(fieldMediaType) then SetField(fieldMediaType, GetStatic('Typedemedia'));
  118.       if CanSetField(fieldSource) then SetField(fieldSource, GetStatic('Source'));
  119.       if CanSetField(fieldDate) then SetField(fieldDate, GetStatic('Ladate'));
  120.       if CanSetField(fieldBorrower) then SetField(fieldBorrower, GetStatic('Lemprunteur'));
  121.       if CanSetField(fieldRating) then SetField(fieldRating, GetStatic('Note'));
  122.       if CanSetField(fieldDirector) then SetField(fieldDirector, GetStatic('Directeur'));
  123.       if CanSetField(fieldProducer) then SetField(fieldProducer, GetStatic('Producteur'));
  124.       if CanSetField(fieldCountry) then SetField(fieldCountry, GetStatic('Pays'));
  125.       if CanSetField(fieldCategory) then SetField(fieldCategory, GetStatic('Categorie'));
  126.       if CanSetField(fieldYear) then SetField(fieldYear, GetStatic('Annee'));
  127.       if CanSetField(fieldLength) then SetField(fieldLength, GetStatic('Duree'));
  128.       if CanSetField(fieldActors) then SetField(fieldActors, GetStatic('Acteurs'));
  129.       if CanSetField(fieldURL) then SetField(fieldURL, GetStatic('URL'));
  130.       if CanSetField(fieldComments) then SetField(fieldComments, GetStatic('Commentaires'));
  131.       if CanSetField(fieldVideoFormat) then SetField(fieldVideoFormat, GetStatic('Formatvideo'));
  132.       if CanSetField(fieldAudioBitrate) then SetField(fieldAudioBitrate, GetStatic('Formataudio'));
  133.       if CanSetField(fieldVideoBitrate) then SetField(fieldVideoBitrate, GetStatic('Bitratevideo'));
  134.       if CanSetField(fieldAudioBitrate) then SetField(fieldAudioBitrate, GetStatic('Bitrateaudio'));
  135.       if CanSetField(fieldResolution) then SetField(fieldResolution, GetStatic('Resolution'));
  136.       if CanSetField(fieldFrameRate) then SetField(fieldFrameRate, GetStatic('Nbframe'));
  137.       if CanSetField(fieldLanguages) then SetField(fieldLanguages, GetStatic('Langue'));
  138.       if CanSetField(fieldSubtitles) then SetField(fieldSubtitles, GetStatic('Soustitre'));
  139.       if CanSetField(fieldSize) then SetField(fieldSize, GetStatic('Taille'));
  140.       if CanSetField(fieldDisks) then SetField(fieldDisks, GetStatic('Nbdisque'));
  141.      end;
  142.   end else
  143.   begin
  144.     abort := 'O';
  145.   end;
  146. end;
  147.  
  148. //------------------------------------------------------------------------------
  149. // FONCTION METS LE CHAMPS COMMENTAIRE A LA SUITE DU CHAMPS DESCRIPTION
  150. //------------------------------------------------------------------------------
  151. procedure moveComment();
  152. begin
  153.   if (confirm('Vous allez dΘplacer le contenu du champs ''''Commentaire'''' vers le champs ''''Description''''.') = True) then
  154.   begin
  155.    if (CanSetField(fieldDescription) and CanSetField(fieldComments))  then
  156.    begin
  157.      moveComments();
  158.    end;
  159.   end else
  160.   begin
  161.     abort := 'O';
  162.   end;
  163. end;
  164.  
  165. //------------------------------------------------------------------------------
  166. // FONCTION MISE A JOUR DE LA CASSE DES TITRES ET DES NOMS
  167. //------------------------------------------------------------------------------
  168. procedure UpdateCasse();
  169. begin
  170.   if (confirm('Vous allez modifier la casse des champs avec des ''''Titres'''', des ''''Noms'''', les ''''Pays'''' et les ''''Genres'''', en fonction des champs modifiables et de l''option choisie.') = True) then
  171.   begin
  172. // Titre Original
  173.     if (CanSetField(fieldOriginalTitle)) then
  174.       SetField(fieldOriginalTitle, casse(GetField(fieldOriginalTitle),GetOption('Casse Choisie')));
  175. // Titre Traduit
  176.     if (CanSetField(fieldTranslatedTitle)) then
  177.       SetField(fieldTranslatedTitle, casse(GetField(fieldTranslatedTitle),GetOption('Casse Choisie')));
  178. // Nom du RΘalisateur
  179.     if (CanSetField(fieldDirector)) then
  180.       SetField(fieldDirector, casse(GetField(fieldDirector),GetOption('Casse Choisie')));
  181. //Nom du Producteur
  182.   if (CanSetField(fieldProducer)) then
  183.       SetField(fieldProducer, casse(GetField(fieldProducer),GetOption('Casse Choisie')));
  184. // Nom des Acteurs
  185.   if (CanSetField(fieldActors)) then
  186.       SetField(fieldActors, casse(GetField(fieldActors),GetOption('Casse Choisie')));
  187. // CatΘgorie
  188.   if (CanSetField(fieldCategory)) then
  189.       SetField(fieldCategory, casse(GetField(fieldCategory),GetOption('Casse Choisie')));
  190. // Pays
  191.   if (CanSetField(fieldCountry)) then
  192.       SetField(fieldCountry, casse(GetField(fieldCountry),GetOption('Casse Choisie')));
  193.   end else
  194.   begin
  195.     abort := 'O';
  196.   end;
  197. end;
  198.  
  199. //------------------------------------------------------------------------------
  200. // FONCTION COPIE TITRE SI VIDE
  201. //------------------------------------------------------------------------------
  202. procedure CopyTitle();
  203. begin
  204.   if (confirm('Vous allez dupliquer les titres (si vide), avec la casse choisie.') = True) then
  205.   begin
  206.     if GetField(fieldTranslatedTitle) = '' then
  207.     begin
  208.       if (CanSetField(fieldTranslatedTitle)) then
  209.         SetField(fieldTranslatedTitle, casse(GetField(fieldOriginalTitle),GetOption('Casse Choisie')));
  210.     end else
  211.     if GetField(fieldOriginalTitle) = '' then
  212.     begin
  213.       if (CanSetField(fieldOriginalTitle)) then
  214.         SetField(fieldOriginalTitle, casse(GetField(fieldTranslatedTitle),GetOption('Casse Choisie')));
  215.     end;
  216.   end else
  217.   begin
  218.     abort := 'O';
  219.   end;
  220. end;
  221.  
  222. //------------------------------------------------------------------------------
  223. // FONCTION SUPPRIME TITRE EN DOUBLE
  224. //------------------------------------------------------------------------------
  225. procedure DeleteTitre(Title : Integer);
  226. begin
  227.   if (confirm('Vous allez supprimer le titre en double') = True) then
  228.   begin
  229.       DeleteTitle(Title);
  230.   end else
  231.   begin
  232.     abort := 'O';
  233.   end;
  234. end;
  235.  
  236. //------------------------------------------------------------------------------
  237. // FONCTION QUI AFFICHE LE CHOIX DU TITRE A SUPPRIMER
  238. //------------------------------------------------------------------------------
  239. procedure menuTitre();
  240. begin
  241.   if (FirstExec <> 'N') then
  242.   begin
  243.     PickTreeClear;
  244.     PickTreeAdd('Choisir le champs en double que vous souhaitez supprimer :', '');
  245.     PickTreeAdd('Titre Original (Original Title)', IntToStr(fieldOriginalTitle));
  246.     PickTreeAdd('Titre Traduit (Translated Title)', IntToStr(fieldTranslatedTitle));
  247.     PickTreeExec(Field);
  248.   end;
  249.  
  250.   DeleteTitre(StrToInt(Field,0));
  251.  
  252. end;
  253.  
  254. //------------------------------------------------------------------------------
  255. // SUPPRIME UN MOT D'UNE CHAINE
  256. //------------------------------------------------------------------------------
  257.  
  258. procedure deleteWord(Champs : Integer);
  259. var
  260.   i,j, fin, finTitle : Integer;
  261.   title, temp, avant, apres : String;
  262. begin
  263.   if (confirm('Vous allez supprimer un mot d''un champs.') = True) then
  264.   begin
  265.     title := ' '+GetField(Champs)+' ';
  266.     if (NewField = '') then
  267.       Input('Delete a Word by ScorEpioN', 'Entrez le mot α supprimer :', NewField);
  268.     i:=pos(NewField,title);
  269.     if i <> 0 then
  270.     begin
  271.       fin := length(NewField);
  272.       avant := copy(title,i-1,1);
  273.       apres := copy(title,i+fin,1);
  274.       if (avant = ' ') and (apres = ' ') then
  275.       begin
  276.           finTitle := length(title);
  277.           title := copy(title,1,i-1)+copy(title,i+fin,finTitle-i-fin+1);
  278.           title := StringReplace(title, '  ', ' ');
  279.       end;
  280.     end;
  281.     SetField(Champs, Trim(title));
  282.   end else
  283.   begin
  284.     abort := 'O';
  285.   end;
  286. end;
  287.  
  288. //------------------------------------------------------------------------------
  289. // REMPLACE UN MOT DANS UN CHAMPS
  290. //------------------------------------------------------------------------------
  291.  
  292. procedure replaceWord(Champs : Integer);
  293. begin
  294.   if (confirm('Vous allez remplacer un mot dans un champs.') = True) then
  295.   begin
  296.     if (NewField = '') then
  297.       Input('Replace a Word by ScorEpioN', 'Entrez le mot α remplacer :', NewField);
  298.     if (NewValue = '') then
  299.       Input('Replace a Word by ScorEpioN', 'Entrez le nouveau mot :', NewValue);
  300.     SetField(Champs, StringReplace(GetField(Champs), NewField, NewValue));
  301.   end else
  302.   begin
  303.     abort := 'O';
  304.   end;
  305. end;
  306.  
  307. //------------------------------------------------------------------------------
  308. // REMPLACE LE CONTENU D'UN CHAMPS
  309. //------------------------------------------------------------------------------
  310.  
  311. procedure replaceField(Champs : Integer);
  312. begin
  313.   if (confirm('Vous allez remplacer le contenu d''un champs.') = True) then
  314.   begin
  315.     if (NewField = '') then
  316.       Input('Replace a Field by ScorEpioN', 'Entrez la nouvelle valeur du champs :', NewField);
  317.     SetField(Champs, NewField);
  318.   end else
  319.   begin
  320.     abort := 'O';
  321.   end;
  322. end;
  323.  
  324. //------------------------------------------------------------------------------
  325. // EFFACE LE CONTENU D'UN CHAMPS
  326. //------------------------------------------------------------------------------
  327.  
  328. procedure deleteField(Champs : Integer);
  329. begin
  330.   if (confirm('Vous allez effacer le contenu d''un champs.') = True) then
  331.   begin
  332.     SetField(Champs, '');
  333.   end else
  334.   begin
  335.     abort := 'O';
  336.   end;
  337. end;
  338.  
  339. //------------------------------------------------------------------------------
  340. // COCHE LE FILM SI LE CONTENU DU CHAMPS EST VIDE
  341. //------------------------------------------------------------------------------
  342.  
  343. procedure checkEmptyField(Champs : Integer);
  344. begin
  345.   if (confirm('Vous allez cocher les films ayant le champs choisi vide.') = True) then
  346.   begin
  347.     if (GetField(Champs) = '') then
  348.       SetField(fieldChecked, 'x')
  349.     else
  350.       SetField(fieldChecked, '');
  351.   end else
  352.   begin
  353.     abort := 'O';
  354.   end;
  355. end;
  356.  
  357. //------------------------------------------------------------------------------
  358. // IMPORTER UNE IMAGE A PARTIR DE SON URL
  359. //------------------------------------------------------------------------------
  360.  
  361. procedure NewImage();
  362. begin
  363.   if (confirm('Vous allez importer une nouvelle image.') = True) then
  364.   begin
  365.     if (NewField = '') then
  366.       Input('Import Image by URL', 'Entrez l''URL de l''image :', NewField);
  367.     GetPicture(NewField);
  368.   end else
  369.   begin
  370.     abort := 'O';
  371.   end;
  372. end;
  373.  
  374. //------------------------------------------------------------------------------
  375. // TRANSFORME LES NATIONALITES EN PAYS
  376. //------------------------------------------------------------------------------
  377.  
  378. procedure transformPays();
  379. begin
  380.   if (confirm('Vous allez transformer les nationalitΘs du champs Pays, en nom de pays.') = True) then
  381.   begin
  382.     if CanSetField(fieldCountry) then
  383.       SetField(fieldCountry, transformCountry(GetField(fieldCountry)));
  384.   end else
  385.   begin
  386.     abort := 'O';
  387.   end;
  388. end;
  389.  
  390. //------------------------------------------------------------------------------
  391. // FONCTION QUI AFFICHE LA LISTE DES CHAMPS
  392. //------------------------------------------------------------------------------
  393. procedure menuChamps(lAction : String);
  394. begin
  395.   if (FirstExec <> 'N') then
  396.   begin
  397.     PickTreeClear;
  398.     PickTreeAdd('Label du support (Update Media Type Field)', IntToStr(fieldMedia));
  399.     PickTreeAdd('Type de support (Update Media Type Field)', IntToStr(fieldMediaType));
  400.     PickTreeAdd('Origine (Source)', IntToStr(fieldSource));
  401.     PickTreeAdd('Emprunteur (Borrower)',IntToStr(fieldBorrower));
  402.     PickTreeAdd('Titre original (Original Title)', IntToStr(fieldOriginalTitle));
  403.     PickTreeAdd('Titre Traduit (Translated Title)', IntToStr(fieldTranslatedTitle));
  404.     PickTreeAdd('RΘalisateur (Director)',IntToStr(fieldDirector));
  405.     PickTreeAdd('Producteur (Producer)',IntToStr(fieldProducer));
  406.     PickTreeAdd('Pays (Country)',IntToStr(fieldCountry));
  407.     PickTreeAdd('Genre (Category)',IntToStr(fieldCategory));
  408.     PickTreeAdd('Acteurs (Actors)',IntToStr(fieldActors));
  409.     PickTreeAdd('Adresse Web (URL)',IntToStr(fieldURL));
  410.     PickTreeAdd('Description (Description)',IntToStr(fieldDescription));
  411.     PickTreeAdd('Commentaire (Comments)',IntToStr(fieldComments));
  412.     PickTreeAdd('Langue (Languages)',IntToStr(fieldLanguages));
  413.     PickTreeAdd('Sous-Titres (Subtitles)',IntToStr(fieldSubtitles));
  414.     PickTreeExec(Field);
  415.   end;
  416.  
  417.   if (lAction = 'checkEmptyField') then
  418.   begin
  419.     checkEmptyField(StrToInt(Field,0));
  420.   end else
  421.   if (lAction = 'deleteW') then
  422.   begin
  423.     deleteWord(StrToInt(Field,0));
  424.   end else
  425.   if (lAction = 'deleteF') then
  426.   begin
  427.     deleteField(StrToInt(Field,0));
  428.   end else
  429.   if (lAction = 'replaceW') then
  430.   begin
  431.     replaceWord(StrToInt(Field,0));
  432.   end else
  433.   if (lAction = 'replaceF') then
  434.   begin
  435.     replaceField(StrToInt(Field,0));
  436.   end;
  437.  
  438. end;
  439.  
  440. //------------------------------------------------------------------------------
  441. // PROCEDURE POUR METTRE LA TAILLE TOTALE DES FICHIERS
  442. //------------------------------------------------------------------------------
  443. procedure tailleFichier();
  444. var
  445.   i, Total: Integer;
  446.   s: string;
  447. begin
  448.   i := 1;
  449.   Total := 0;
  450.   s := GetField(fieldSize);
  451.   while i <= Length(s) do
  452.   begin
  453.     if (StrGet(s, i) >= '0') and (StrGet(s, i) <= '9') then
  454.       i := i + 1
  455.     else
  456.     begin
  457.       if i > 1 then
  458.         Total := Total + StrToInt(Copy(s, 1, i - 1), 0);
  459.       Delete(s, 1, i);
  460.       i := 1;
  461.     end;
  462.   end;
  463.   if i > 1 then
  464.   begin
  465.     Total := Total + StrToInt(Copy(s, 1, i - 1), 0);
  466.     SetField(fieldSize, IntToStr(Total));
  467.   end;
  468. end;
  469.  
  470. //------------------------------------------------------------------------------
  471. // TRADUIT LE CHAMPS DESCRIPTION
  472. //------------------------------------------------------------------------------
  473.  
  474. procedure translateSynopsis();
  475. var
  476.    Adresse, Parametre, Description, Resultat, Line : String;
  477.    BeginPos, EndPos : Integer;
  478. begin
  479.   if (confirm('Vous allez traduire le champs ''''Description''''.') = True) then
  480.   begin
  481.      if (NewField = '') then
  482.      begin
  483.       PickTreeClear;
  484.       PickTreeAdd('SΘlectionner les langues source et cible :', '');
  485.       PickTreeAdd('Du chinois simpl. vers l''anglais', 'zh_en');
  486.       PickTreeAdd('Du chinois trad. vers l''anglais', 'zt_en');
  487.       PickTreeAdd('De l''anglais vers le chinois simpl.', 'en_zh');
  488.       PickTreeAdd('De l''anglais vers le chinois trad.', 'en_zt');
  489.       PickTreeAdd('De l''anglais vers le hollandais', 'en_nl');
  490.       PickTreeAdd('De l''anglais vers le franτais', 'en_fr');
  491.       PickTreeAdd('De l''anglais vers l''allemand', 'en_de');
  492.       PickTreeAdd('De l''anglais vers le grec', 'en_el');
  493.       PickTreeAdd('De l''anglais vers l''italien', 'en_it');
  494.       PickTreeAdd('De l''anglais vers le japonais', 'en_ja');
  495.       PickTreeAdd('De l''anglais vers corΘen', 'en_ko');
  496.       PickTreeAdd('De l''anglais vers le portugais', 'en_pt');
  497.       PickTreeAdd('De l''anglais vers le russe', 'en_ru');
  498.       PickTreeAdd('De l''anglais vers l''espagnol', 'en_es');
  499.       PickTreeAdd('Du hollandais vers l''anglais', 'nl_en');
  500.       PickTreeAdd('Du hollandais vers le franτais', 'nl_fr');
  501.       PickTreeAdd('Du franτais vers le hollandais', 'fr_nl');
  502.       PickTreeAdd('Du franτais vers l''anglais', 'fr_en');
  503.       PickTreeAdd('Du franτais vers l''allemand', 'fr_de');
  504.       PickTreeAdd('Du franτais vers le grec', 'fr_el');
  505.       PickTreeAdd('Du franτais vers l''italien', 'fr_it');
  506.       PickTreeAdd('Du franτais vers le portugais', 'fr_pt');
  507.       PickTreeAdd('Du franτais vers l''espagnol', 'fr_es');
  508.       PickTreeAdd('De l''allemand vers l''anglais', 'de_en');
  509.       PickTreeAdd('De l''allemand vers le franτais', 'de_fr');
  510.       PickTreeAdd('Du grec vers l''anglais', 'el_en');
  511.       PickTreeAdd('Du grec vers le franτais', 'el_fr');
  512.       PickTreeAdd('De l''italien vers l''anglais', 'it_en');
  513.       PickTreeAdd('De l''italien vers le franτais', 'it_fr');
  514.       PickTreeAdd('Du japonais vers l''anglais', 'ja_en');
  515.       PickTreeAdd('Du corΘen vers l''anglais', 'ko_en');
  516.       PickTreeAdd('Du portugais vers l''anglais', 'pt_en');
  517.       PickTreeAdd('Du portugais vers le franτais', ' pt_fr');
  518.       PickTreeAdd('Du russe vers l''anglais', 'ru_en');
  519.       PickTreeAdd('De l''espagnol vers l''anglais', 'es_en');
  520.       PickTreeAdd('De l''espagnol vers le franτais', 'es_fr');
  521.       PickTreeExec(NewField);
  522.     end;
  523.     Description := GetField(fieldDescription);
  524.     Description := StringReplace(Description , #13#10, ' ');
  525.     Description := UTF8Encode(Description);
  526.     Adresse := URLEncode('http://babelfish.altavista.com/tr');
  527.     Parametre := 'do it =done&intl=1&tt=urltext&trtext='+Description+'&lp='+NewField;
  528.     Line := PostPage(Adresse,Parametre);
  529.     BeginPos := Pos('<td bgcolor=white class=s><div style=padding:10px;>', Line);
  530.     Delete(Line, 1, BeginPos+50);
  531.     EndPos := Pos('</div></td>', Line);
  532.     Resultat := Copy(Line, 1, EndPos-1 );
  533.     Resultat := StringReplace(Resultat, #13#10, ' ');
  534.     Resultat := UTF8Decode(Resultat);
  535.     HTMLDecode(Resultat);
  536.     HTMLRemoveTags(Resultat);
  537.     SetField(fieldDescription, Resultat);
  538.   end else
  539.   begin
  540.     abort := 'O';
  541.   end;    
  542. end;
  543.  
  544. //------------------------------------------------------------------------------
  545. // FONCTION QUI AFFICHE LE MENU ET RETOURNE L'ACTION CHOISIE
  546. //------------------------------------------------------------------------------
  547. function menu() : String;
  548. begin
  549.     PickTreeClear;
  550.     PickTreeAdd('Importer une image depuis son url (Import Image by URL)', 'NewImage');
  551.     PickTreeAdd('Dupliquer le contenu d''une fiche (Duplicate card)', 'Duplicate');
  552.     PickTreeAdd('DΘplacer les commentaires dans la description (Move Comments -> Description)', 'Move');
  553.     PickTreeAdd('Changer la casse en fonction de l''option choisie (Change letter format with option)', 'Casse');
  554.     PickTreeAdd('Cocher les films si champs vide (Check Empty Field)', 'checkEmptyField');
  555.     PickTreeAdd('Supprimer des titres les tags (Remove title tags)', 'Tags');
  556.     PickTreeAdd('Copier titre si un titre vide (Copy Title If Empty Title)', 'Copier');
  557.     PickTreeAdd('Supprimer titre en double (Delete Double Title)', 'DeleteDouble');
  558.     PickTreeAdd('Supprimer le contenu d''un champs (Delete a field)', 'deleteF');
  559.     PickTreeAdd('Remplacer le contenu d''un champs (Replace a field)', 'replaceF');
  560.     PickTreeAdd('Supprimer un mot dans un champs (Delete a word)', 'deleteW');
  561.     PickTreeAdd('Remplacer un mot dans un champs (Replace a word)', 'replaceW');
  562.     PickTreeAdd('Transformer NationalitΘ en Pays  (Transform Nationality to Country)', 'transformPays');
  563.     PickTreeAdd('Format ''Somme'' pour la taille des fichiers  (Sum Format to Size Field)', 'tailleFichier');
  564.     PickTreeAdd('Traduire la description avec Altavista (Translate Synopsis with Altavista)', 'Translate');
  565.  
  566.     PickTreeExec(Update);
  567.     result := Update;
  568. end;
  569.  
  570. //------------------------------------------------------------------------------
  571. // PROCEDURE POUR EXECUTER LA TACHE CHOISIE
  572. //------------------------------------------------------------------------------
  573. procedure executeTask();
  574. begin
  575.    if (Update = 'NewImage') then
  576.    begin
  577.      NewImage();
  578.    end else if (Update = 'checkEmptyField') then
  579.    begin
  580.      menuChamps('checkEmptyField');
  581.    end else if (Update = 'transformPays') then
  582.    begin
  583.      transformPays();
  584.    end else if (Update = 'Move') then
  585.    begin
  586.      moveComment();
  587.    end else if (Update = 'Tags') then
  588.    begin
  589.      SetField(fieldTranslatedTitle, casse(cleanTitle(GetField(fieldTranslatedTitle)),GetOption('Casse Choisie')));
  590.      SetField(fieldOriginalTitle, casse(cleanTitle(GetField(fieldOriginalTitle)),GetOption('Casse Choisie')));
  591.    end else if (Update = 'Casse') then
  592.    begin
  593.      UpdateCasse();
  594.    end else if (Update = 'tailleFichier') then
  595.    begin
  596.      tailleFichier();
  597.    end else if (Update = 'DeleteDouble') then
  598.    begin
  599.      menuTitre();
  600.    end else if (Update = 'Copier') then
  601.    begin
  602.      CopyTitle();
  603.    end else if (Update = 'deleteW') then
  604.    begin
  605.      menuChamps('deleteW');
  606.    end else if (Update = 'deleteF') then
  607.    begin
  608.      menuChamps('deleteF');
  609.    end else if (Update = 'replaceW') then
  610.    begin
  611.      menuChamps('replaceW');
  612.    end else if (Update = 'replaceF') then
  613.    begin
  614.      menuChamps('replaceF');
  615.    end else if (Update = 'Translate') then
  616.    begin
  617.      translateSynopsis();
  618.    end else if (Update = 'Duplicate') then
  619.    begin
  620.      duplicateFields();
  621.    end;
  622. end;
  623.  
  624. //------------------------------------------------------------------------------
  625. // PROGRAMME PRINCIPAL
  626. //------------------------------------------------------------------------------
  627.  
  628. begin
  629.   if CheckVersion(3,5,0) then
  630.   begin
  631.     if GetOption('Mise α jour') = 0 then
  632.     begin
  633.        execMenuMAJ(VersionScript,NomScript);
  634.        exit;
  635.     end;
  636.     if (Abort <> 'O') then
  637.     begin
  638.       if (Update = '') then
  639.         Update := menu();
  640.       executeTask();
  641.       FirstExec := 'N';
  642.     end else
  643.     begin
  644.       exit;
  645.     end;
  646.   end else
  647.     ShowMessage('Ce script requiert une version plus rΘcente de Ant Movie Catalog (au moins la version 3.5.0)');
  648.     exit;
  649. end.
  650.